In [36]:
import tensorflow as tf
In [37]:
from tensorflow import keras
In [38]:
from tensorflow.keras.optimizers import RMSprop
In [39]:
import numpy as np
In [40]:
import pandas as pd
In [41]:
from tensorflow.keras.preprocessing import image
In [42]:
from tensorflow.keras.preprocessing.image import ImageDataGenerator
In [43]:
import matplotlib.pyplot as plt
In [44]:
import os
In [45]:
import cv2
In [46]:
img=image.load_img ("C://Users//Admin//Desktop//Aishwarya Rai Images//training//good images//ash 11.JFIF")
In [47]:
plt.imshow(img)
Out[47]:
<matplotlib.image.AxesImage at 0x21827c1c8e0>
In [48]:
cv2.imread ("C://Users//Admin//Desktop//Aishwarya Rai Images//training//good images//ash 11.JFIF")
Out[48]:
array([[[104, 106, 107],
        [100, 102, 103],
        [ 94,  96,  97],
        ...,
        [169, 169, 175],
        [170, 170, 176],
        [172, 169, 178]],

       [[105, 107, 108],
        [101, 103, 104],
        [ 95,  97,  98],
        ...,
        [170, 170, 176],
        [171, 171, 177],
        [177, 174, 183]],

       [[106, 108, 109],
        [102, 104, 105],
        [ 97,  99, 100],
        ...,
        [171, 171, 177],
        [172, 172, 178],
        [180, 177, 186]],

       ...,

       [[149, 184, 234],
        [138, 175, 225],
        [125, 166, 215],
        ...,
        [ 92, 142, 202],
        [ 89, 139, 199],
        [ 95, 140, 201]],

       [[139, 175, 229],
        [127, 166, 218],
        [115, 155, 208],
        ...,
        [ 98, 148, 208],
        [ 96, 143, 204],
        [ 99, 146, 207]],

       [[119, 156, 212],
        [113, 153, 206],
        [104, 145, 200],
        ...,
        [102, 150, 208],
        [ 98, 146, 204],
        [ 98, 145, 206]]], dtype=uint8)
In [49]:
cv2.imread ("C://Users//Admin//Desktop//Aishwarya Rai Images//training//good images//ash 11.JFIF").shape
Out[49]:
(121, 161, 3)
In [50]:
train=ImageDataGenerator(rescale=1/206)
validation=ImageDataGenerator(rescale=1/206)
In [51]:
train_dataset=train.flow_from_directory("C://Users//Admin//Desktop//Aishwarya Rai Images//training//",target_size=(150,150),batch_size=2,class_mode='binary')
Found 14 images belonging to 2 classes.
In [52]:
validation_dataset=validation.flow_from_directory("C://Users//Admin//Desktop//Aishwarya Rai Images//validation//",target_size=(150,150),batch_size=2,class_mode='binary')
Found 13 images belonging to 2 classes.
In [53]:
train_dataset.class_indices
Out[53]:
{'bad images': 0, 'good images': 1}
In [54]:
train_dataset.classes
Out[54]:
array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1])
In [55]:
model=tf.keras.models.Sequential([tf.keras.layers.Conv2D(16,(3,3),activation ='relu',input_shape=(150,150,3)),
                                  tf.keras.layers.MaxPool2D(2,2),
#
                                  tf.keras.layers.Conv2D(32,(3,3),activation ='relu'),
                                  tf.keras.layers.MaxPool2D(2,2), 
#
                                  tf.keras.layers.Conv2D(64,(3,3),activation ='relu'),
                                  tf.keras.layers.MaxPool2D(2,2), 
## 
                                  tf.keras.layers.Flatten(),
##
                                  tf.keras.layers.Dense(512,activation ='relu'),
##
                                  tf.keras.layers.Dense(1,activation ='sigmoid')])
In [56]:
model.compile(loss ='binary_crossentropy',
              optimizer= RMSprop(lr=0.001),
              metrics=['accuracy'])
In [57]:
model_fit=model.fit(train_dataset,
                    steps_per_epoch=1,
                    epochs=30,
                   validation_data=validation_dataset)
Epoch 1/30
1/1 [==============================] - 3s 3s/step - loss: 0.7995 - accuracy: 0.0000e+00 - val_loss: 19.5123 - val_accuracy: 0.6154
Epoch 2/30
1/1 [==============================] - 1s 707ms/step - loss: 57.9924 - accuracy: 0.0000e+00 - val_loss: 1.1580 - val_accuracy: 0.3846
Epoch 3/30
1/1 [==============================] - 1s 706ms/step - loss: 0.9192 - accuracy: 0.5000 - val_loss: 0.6432 - val_accuracy: 0.6154
Epoch 4/30
1/1 [==============================] - 1s 734ms/step - loss: 0.6618 - accuracy: 0.5000 - val_loss: 0.6529 - val_accuracy: 0.4615
Epoch 5/30
1/1 [==============================] - 1s 738ms/step - loss: 0.8934 - accuracy: 0.0000e+00 - val_loss: 1.2478 - val_accuracy: 0.6154
Epoch 6/30
1/1 [==============================] - 1s 758ms/step - loss: 1.6490 - accuracy: 0.5000 - val_loss: 0.5892 - val_accuracy: 0.8462
Epoch 7/30
1/1 [==============================] - 1s 734ms/step - loss: 0.7052 - accuracy: 0.5000 - val_loss: 0.6307 - val_accuracy: 0.5385
Epoch 8/30
1/1 [==============================] - 1s 658ms/step - loss: 0.5819 - accuracy: 0.5000 - val_loss: 0.5163 - val_accuracy: 0.9231
Epoch 9/30
1/1 [==============================] - 1s 792ms/step - loss: 0.5198 - accuracy: 1.0000 - val_loss: 0.5240 - val_accuracy: 0.7692
Epoch 10/30
1/1 [==============================] - 1s 617ms/step - loss: 0.5059 - accuracy: 1.0000 - val_loss: 0.5221 - val_accuracy: 0.7692
Epoch 11/30
1/1 [==============================] - 1s 577ms/step - loss: 0.5215 - accuracy: 0.5000 - val_loss: 0.4142 - val_accuracy: 0.9231
Epoch 12/30
1/1 [==============================] - 1s 642ms/step - loss: 0.3704 - accuracy: 1.0000 - val_loss: 0.3682 - val_accuracy: 0.8462
Epoch 13/30
1/1 [==============================] - 1s 647ms/step - loss: 0.2939 - accuracy: 1.0000 - val_loss: 0.3503 - val_accuracy: 1.0000
Epoch 14/30
1/1 [==============================] - 1s 715ms/step - loss: 0.2993 - accuracy: 1.0000 - val_loss: 0.2634 - val_accuracy: 0.9231
Epoch 15/30
1/1 [==============================] - 1s 768ms/step - loss: 0.1143 - accuracy: 1.0000 - val_loss: 0.9987 - val_accuracy: 0.6154
Epoch 16/30
1/1 [==============================] - 1s 593ms/step - loss: 0.7361 - accuracy: 0.5000 - val_loss: 0.7185 - val_accuracy: 0.4615
Epoch 17/30
1/1 [==============================] - 1s 622ms/step - loss: 0.5623 - accuracy: 0.5000 - val_loss: 0.3312 - val_accuracy: 0.8462
Epoch 18/30
1/1 [==============================] - 1s 696ms/step - loss: 0.0891 - accuracy: 1.0000 - val_loss: 0.3316 - val_accuracy: 0.8462
Epoch 19/30
1/1 [==============================] - 1s 720ms/step - loss: 0.0715 - accuracy: 1.0000 - val_loss: 0.4809 - val_accuracy: 0.6923
Epoch 20/30
1/1 [==============================] - 1s 782ms/step - loss: 0.0875 - accuracy: 1.0000 - val_loss: 0.6843 - val_accuracy: 0.6923
Epoch 21/30
1/1 [==============================] - 1s 629ms/step - loss: 1.0935 - accuracy: 0.5000 - val_loss: 0.5983 - val_accuracy: 0.5385
Epoch 22/30
1/1 [==============================] - 1s 703ms/step - loss: 0.7228 - accuracy: 0.5000 - val_loss: 0.2845 - val_accuracy: 0.9231
Epoch 23/30
1/1 [==============================] - 1s 723ms/step - loss: 0.2050 - accuracy: 1.0000 - val_loss: 0.3933 - val_accuracy: 0.7692
Epoch 24/30
1/1 [==============================] - 1s 691ms/step - loss: 0.5607 - accuracy: 0.5000 - val_loss: 0.2601 - val_accuracy: 0.9231
Epoch 25/30
1/1 [==============================] - 1s 669ms/step - loss: 0.2966 - accuracy: 1.0000 - val_loss: 0.2615 - val_accuracy: 0.8462
Epoch 26/30
1/1 [==============================] - 1s 642ms/step - loss: 0.1040 - accuracy: 1.0000 - val_loss: 0.3625 - val_accuracy: 0.8462
Epoch 27/30
1/1 [==============================] - 1s 657ms/step - loss: 1.2872 - accuracy: 0.5000 - val_loss: 0.3500 - val_accuracy: 0.9231
Epoch 28/30
1/1 [==============================] - 1s 602ms/step - loss: 0.7682 - accuracy: 0.5000 - val_loss: 0.2259 - val_accuracy: 1.0000
Epoch 29/30
1/1 [==============================] - 1s 643ms/step - loss: 0.2443 - accuracy: 1.0000 - val_loss: 0.1874 - val_accuracy: 1.0000
Epoch 30/30
1/1 [==============================] - 1s 590ms/step - loss: 0.3799 - accuracy: 1.0000 - val_loss: 0.2029 - val_accuracy: 1.0000
In [58]:
validation_dataset.class_indices
Out[58]:
{'bad images': 0, 'good images': 1}
In [59]:
dir_path=("C://Users//Admin//Desktop//Aishwarya Rai Images//training//good images//")
for i in os.listdir(dir_path):
    img=image.load_img(dir_path+'//'+i)
    plt.imshow(img)
    plt.show()
    
    
In [60]:
dir_path=("C://Users//Admin//Desktop//Aishwarya Rai Images//training//bad images//")
for i in os.listdir(dir_path):
    img=image.load_img(dir_path+'//'+i,target_size=(150,150))
    plt.imshow(img)
    plt.show()


   
  
In [61]:
dir_path=("C://Users//Admin//Desktop//Aishwarya Rai Images//training//good images//")
for i in os.listdir(dir_path):
    img=image.load_img(dir_path+'//'+i,target_size=(150,150))
    plt.imshow(img)
    plt.show()
    X = image.img_to_array(img)
    X = np.expand_dims(X,axis = 0)
    images= np.vstack([X])
    val = model.predict(images)
if val == 0:
    print ("images is bad")
else:
    print ("images is good")

   
1/1 [==============================] - 0s 99ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 34ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 35ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 27ms/step
images is good
In [62]:
dir_path=("C://Users//Admin//Desktop//Aishwarya Rai Images//training//bad images//")
for i in os.listdir(dir_path):
    img=image.load_img(dir_path+'//'+i,target_size=(150,150))
    plt.imshow(img)
    plt.show()
    X = image.img_to_array(img)
    X = np.expand_dims(X,axis =0)
    images=np.vstack([X])
    val = model.predict(images)
if val == 0:
    print ("images is bad")
else:
    print ("images is good")
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 33ms/step
1/1 [==============================] - 0s 46ms/step
1/1 [==============================] - 0s 32ms/step
1/1 [==============================] - 0s 40ms/step
images is bad
In [ ]: